﻿#pragma once
//【说明】
//定义一种数组栈 

//【头文件包含】
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>


//【自定义配置】
typedef char StkDataType;


//【结构体声明】
/*带头双向循环链表*/typedef struct Stack //双向链表结构体
{
	StkDataType *data;//指本空间元素
	int top;//表示栈顶
	int capacity;//表示容量空间
}Stk;




//【函数声明】
/*栈初始化*/void StackInit(Stk* ps);
/*栈空间销毁*/void StackDestroy(Stk* ps);
/*栈插入*/void StackPush(Stk* ps, StkDataType x);
/*栈删除*/void StackPop(Stk* ps);
/*栈顶数据提取*/StkDataType StackTop(Stk* ps);
/*栈大小计算*/int StackSize(Stk*ps);
/*栈空判断*/bool StackEmpty(Stk*ps);
/*栈打印*/void StackPrint(Stk* ps);
/*栈从栈顶打印*/void StackPrintTop(Stk* ps);
/**/
/**/
